package com.ep.thirdPlatformProject.system.util;

import cn.hutool.core.util.StrUtil;

import java.util.Arrays;

public class SimpleDealUtil {

    private static final String split_symbol = ",";

    /**
     * 参数验证为空
     *
     * @param param 参数
     * @return {@link String[] }
     */
    public static String[] paramValidateIsEmpNo(String param) {
        // 检查参数是否为null或仅包含空白字符
        if (StrUtil.isBlank(param)) {
            return new String[]{};
        }

        // 检查param是否包含逗号来决定如何分割
        if (param.contains(split_symbol)) {
            // 使用逗号分割字符串，并返回结果数组
            String[] split = param.split(split_symbol);
            Arrays.stream(split).forEach(SimpleDealUtil::isValidFiveDigitNumber);

            return param.split(split_symbol);
        } else {
            // 如果不包含逗号，则将整个字符串作为单个元素返回
            isValidFiveDigitNumber(param);
            return new String[]{param};
        }

    }

    /**
     * 参数验证为部门id
     *
     * @param param 参数
     * @return {@link String[] }
     */
    public static String[] paramValidateToDeptId(String param) {
        // 检查参数是否为null或仅包含空白字符
        if (StrUtil.isBlank(param)) {
            return new String[]{};
        }

        // 检查param是否包含逗号来决定如何分割
        if (param.contains(split_symbol)) {
            // 使用逗号分割字符串，并返回结果数组
            return param.split(split_symbol);
        } else {

            return new String[]{param};
        }
    }


    /**
     * 校验参数是否合法
     *
     * @param input 输入
     */
    public static void isValidFiveDigitNumber(String input) {
        // 正则表达式，匹配5位数字字符串
        String regex = "^\\d{1,6}$";

        // 使用matches方法进行验证
        boolean matches = input.matches(regex);
        if (!matches) {
            throw new IllegalStateException(input + "参数输入不合法！请检查");
        }
    }


}
